package com.industrial.premu.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.industrial.common.core.annotation.Excel;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Digits;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 亩产效益评价对象 pre_mu_benefit_evaluation
 * 
 * @author ZHOU_S
 * @date 2024-01-25
 */
@Data
public class PreMuLevelBenefitEvaluationVo {



    /**
     * 企业id
     */
//    @Excel(name = "企业id")
    private String companyId;

    /**
     * 地区
     */
    private String areaName;
    /**
     * 定档
     */
    @Excel(name = "定档", type = Excel.Type.EXPORT,sort =1)
    private String mjLevel;
    /**
     * 总分
     */
    @Excel(name = "总分", type = Excel.Type.EXPORT,sort =2)
    //@Digits(integer = 10,fraction = 0,message = "总分必须为数字")
    private BigDecimal sumScore;
    /**
     * 年度
     */
    @Excel(name = "年度",sort = 3)
    private String years;
    /**
     * 统一社会信用代码
     */
    @Excel(name = "统一社会信用代码",sort =4 )
    private String uscc;
    /**
     * 企业名称
     */
    @Excel(name = "企业名称",sort =5)
    @Length(min = 0, max = 64, message = "企业名称长度不能大于64")
    private String companyName;

    /**
     * 省名称
     */
    @Excel(name = "省份名称",sort = 6)
    private String provinceName;
    /**
     * 市名称
     */
    @Excel(name = "市名称",sort = 7)
    private String cityName;
    /**
     * 区县名称
     */
    @Excel(name = "区县",sort =8)
    private String countyName;
    /**
     * 街道乡镇名称
     */
    @Excel(name = "街道乡镇",sort =9)
    private String villageName;
    /**
     * 单位规模名称
     */
    @Excel(name = "单位规模",type = Excel.Type.EXPORT,sort =10)
    private String companyScaleName;

    /**
     * 企业性质
     */
//    @Excel(name = "企业性质")
    @Length(min = 0, max = 10, message = "企业性质长度不能大于10")
    private String companyProp;
    /**
     * 企业性质名称
     */
    @Excel(name = "企业性质",sort =11)
    private String companyPropName;
    /**
     * 企业类型
     */
//    @Excel(name = "企业类型")
    @Length(min = 0, max = 10, message = "企业类型长度不能大于10")
    private String companyType;
    /**
     * 企业类型名称
     */
    @Excel(name = "企业类型", type = Excel.Type.EXPORT,sort =12)
    private String companyTypeName;
    /**
     * 单位规模
     */
//    @Excel(name = "单位规模")
    @Length(min = 0, max = 10, message = "单位规模长度不能大于10")
    private String companyScale;

    /**
     * 所属行业
     */
//    @Excel(name = "所属行业")
    @Length(min = 0, max = 10, message = "所属行业长度不能大于10")
    private String industryType;
    /**
     * 所属行业
     */
//    @Excel(name = "所属行业")
    @Length(min = 0, max = 10, message = "所属行业长度不能大于10")
    private String industryMediumType;


    /**
     * 所属行业名称
     */
    @Excel(name = "所属行业",type = Excel.Type.EXPORT,sort =13)
    private String industryTypeName;

    /**
     * 所属行业
     */
    @Excel(name = "所属中类行业",sort =14)
    @Length(min = 0, max = 10, message = "所属行业长度不能大于10")
    private String industryMediumTypeName;
    /**
     * 地址
     */
    @Excel(name = "地址", type = Excel.Type.EXPORT,sort =15)
    @Length(min = 0, max = 225, message = "地址长度不能大于225")
    private String addr;
    /**
     * 营业执照
     */
    @Excel(name = "营业执照", type = Excel.Type.EXPORT,sort =16)
    @Length(min = 0, max = 255, message = "营业执照长度不能大于255")
    private String license;
    /**
     * 增值税
     */
    @Excel(name = "增值税",sort =17)
    @Digits(integer = 10,fraction = 4,message = "增值税必须为数字")
    private BigDecimal addedTax;
    /**
     * 消费税
     */
    @Excel(name = "消费税",sort =18)
    @Digits(integer = 10,fraction = 4,message = "消费税必须为数字")
    private BigDecimal exciseTax;
    /**
     * 企业所得税
     */
    @Excel(name = "企业所得税",sort =19)
    @Digits(integer = 10,fraction = 4,message = "企业所得税必须为数字")
    private BigDecimal companyTax;
    /**
     * 个人所得税
     */
    @Excel(name = "个人所得税",sort =20)
    @Digits(integer = 10,fraction = 4,message = "个人所得税必须为数字")
    private BigDecimal personalTax;

    /**
     * 税收
     */
    @Excel(name = "税收", type = Excel.Type.EXPORT,sort =21)
    // @Digits(integer = 10,fraction = 0,message = "税收必须为数字")
    private BigDecimal actualTax;

//    /**
//     * 实际用地面积
//     */
////    @Excel(name = "实际用地面积")
//    @Length(min = 0,max = 50,message="实际用地面积长度不能大于50")
//	private String actualArea;
    /**
     * 自有土地使用权土地
     */
    @Excel(name = "自有土地使用权土地", type = Excel.Type.EXPORT,sort =22)
    @Length(min = 0, max = 50, message = "自有土地使用权土地长度不能大于50")
    private String useArea;
    /**
     * 通过租赁方式实际占用土地
     */
    @Excel(name = "通过租赁方式实际占用土地", type = Excel.Type.EXPORT,sort =23)
    @Length(min = 0, max = 50, message = "通过租赁方式实际占用土地长度不能大于50")
    private String leasedArea;
    /**
     * 其他实际占用土地
     * //
     */
    @Excel(name = "其他实际占用土地", type = Excel.Type.EXPORT,sort =24)
    @Length(min = 0, max = 50, message = "其他实际占用土地长度不能大于50")
    private String otherArea;
    /**
     * 对外出租土地
     */
    @Excel(name = "对外出租土地", type = Excel.Type.EXPORT,sort =25)
    @Length(min = 0, max = 50, message = "对外出租土地长度不能大于50")
    private String rentOutArea;

    @Excel(name = "总用地面积",sort =26)
    @Digits(integer = 20,fraction = 4,message = "总用地面积必须为数字")
    private BigDecimal sumArea;
    /**
     * 主营业务收入
     */
    @Excel(name = "销售收入", type = Excel.Type.EXPORT,sort =27)
    //@Digits(integer = 10,fraction = 0,message = "主营业务收入必须为数字")
    private BigDecimal mainIncome;



    /**
     * 耗气量
     */
    @Excel(name = "耗气量", type = Excel.Type.EXPORT,sort =28)
    @Digits(integer = 20,fraction = 4,message = "耗气量必须为数字")
    private BigDecimal gasConsumption;
    /**
     * 总耗能
     */
    @Excel(name = "总耗能", type = Excel.Type.EXPORT,sort =29)
    @Digits(integer = 10,fraction = 4,message = "总耗能必须为数字")
    private String totalUsed;
    /**
     * 化学需氧量
     */
    @Excel(name = "化学需氧量", type = Excel.Type.EXPORT,sort =30)
    @Length(min = 0, max = 50, message = "化学需氧量长度不能大于50")
    private String o2;
    /**
     * 氨氮
     */
    @Excel(name = "氨氮", type = Excel.Type.EXPORT,sort =31)
    @Length(min = 0, max = 50, message = "氨氮长度不能大于50")
    private String ammonia;
    /**
     * 二氧化硫
     */
    @Excel(name = "二氧化硫", type = Excel.Type.EXPORT,sort =32)
    //@Excel(name = "挥发性有机物", type = Excel.Type.EXPORT)
    @Length(min = 0, max = 50, message = "二氧化硫长度不能大于50")
    private String so2;
    /**
     * 氮氧化物
     */
    @Excel(name = "氮氧化物", type = Excel.Type.EXPORT,sort =33)
    @Length(min = 0, max = 50, message = "氮氧化物长度不能大于50")
    private String nox;
//    /**
//     * 颗粒物
//     */
////    @Excel(name = "颗粒物")
//    @Length(min = 0, max = 50, message = "颗粒物长度不能大于50")
//    private String pm;
//    /**
//     * 挥发性有机物
//     */
////    @Excel(name = "挥发性有机物")
//    @Length(min = 0, max = 50, message = "挥发性有机物长度不能大于50")
//    private String vocs;
    /**
     * 排放总当量
     */
    @Excel(name = "排放总当量", type = Excel.Type.EXPORT,sort =34)
    @Length(min = 0, max = 50, message = "排放总当量长度不能大于50")
    private String totalEquivalent;
    /**
     * 研发经费支出
     */
    @Excel(name = "研发经费支出", type = Excel.Type.EXPORT,sort =35)
//    @Digits(integer = 10,fraction = 0,message = "研发经费支出必须为数字")
    private BigDecimal rdFunds;
    /**
     * 工业总产值
     */
    @Excel(name = "工业总产值", type = Excel.Type.EXPORT,sort =36)
    // @Digits(integer = 10,fraction = 0,message = "工业总产值必须为数字")
    private BigDecimal industryOutput;
    /**
     * 年平均职工人数
     */
    @Excel(name = "年平均职工人数", type = Excel.Type.EXPORT,sort =37)
    @Digits(integer = 10, fraction = 0, message = "年平均职工人数必须为整数")
    private Integer annualEmployees;
    /**
     * 单位用地税收
     */
    @Excel(name = "单位用地税收", type = Excel.Type.EXPORT,sort =38)
    @Digits(integer = 10, fraction = 0, message = "单位用地税收必须为数字")
    private BigDecimal score1;
    /**
     * 单位能耗销售收入
     */
    @Excel(name = "单位能耗销售收入", type = Excel.Type.EXPORT,sort =39)
    @Digits(integer = 10, fraction = 0, message = "单位能耗销售收入必须为数字")
    private BigDecimal score2;
    /**
     * 单位污染物排放销售收入
     */
    @Excel(name = "单位污染物排放销售收入", type = Excel.Type.EXPORT,sort =40)
    @Digits(integer = 10, fraction = 0, message = "单位污染物排放销售收入必须为数字")
    private BigDecimal score3;
    /**
     * 研发经费投入强度
     */
    @Excel(name = "研发经费投入强度", type = Excel.Type.EXPORT,sort =41)
    @Digits(integer = 10, fraction = 0, message = "研发经费投入强度必须为数字")
    private BigDecimal score4;
    /**
     * 全员劳动生产率
     */
    @Excel(name = "全员劳动生产率", type = Excel.Type.EXPORT,sort =42)
    @Digits(integer = 10, fraction = 0, message = "全员劳动生产率必须为数字")
    private BigDecimal score5;
    /**
     * 单位耗水销售收入
     */
    @Excel(name = "单位耗水销售收入", type = Excel.Type.EXPORT,sort =43)
    @Digits(integer = 10, fraction = 0, message = "单位耗水销售收入必须为数字")
    private BigDecimal score6;
    /**
     * 单位用地销售收入
     */
    @Excel(name = "单位用地销售收入", type = Excel.Type.EXPORT,sort =44)
    @Digits(integer = 10, fraction = 0, message = "单位用地销售收入必须为数字")
    private BigDecimal score7;

    /**
     * 定档日期
     */
//    @Excel(name = "定档日期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date mjDate;
    /**
     * 状态
     */
    private String status;
    /**
     * 填表人
     */
//    @Excel(name = "填表人")
    //@NotBlank(message = "填表人不能为空")
    @Length(min = 0, max = 64, message = "填表人长度不能大于64")
    private String fillTableBy;
    /**
     * 填表时间
     */
//    @Excel(name = "填表时间",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date fillTableDate;
    /**
     * 填表人联系方式
     */
//    @Excel(name = "填表人联系方式")
    //@NotBlank(message = "填表人联系方式不能为空")
    @Length(min = 0, max = 255, message = "填表人联系方式长度不能大于255")
    private String fillTablePhone;
    /**
     * 评价时间
     */
//    @Excel(name = "评价时间",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date evaluationDate;
    //加分项
    private String addItemIds;
    //减分项
    private String substractItemIds;

    //加分项总分
    private BigDecimal addScore;
    //减分项总分
    private BigDecimal subScore;

    //否决项
    private String vetoItemIds;

    //升档
    private String upgradeIds;

    //降档
    private String downgradeIds;
    //日志 操作
    private String operation;

    //日志 操作説明
    private String operationLllustrate;
    //姓名
    private String name;

    private boolean flag;

    private String msg;

    private List<PremuImportAddSubstractVo> addList;
    private List<PremuImportAddSubstractVo> subList;

    //区县代码
    private String county;
    /**
     * 耗煤量
     */
    @Excel(name = "耗煤量", type = Excel.Type.EXPORT,sort =45)
    @Digits(integer = 20,fraction = 4,message = "耗煤量必须为数字")
    private BigDecimal coalConsumption;

    /**
     * 耗电量
     */
    @Excel(name = "耗电量", type = Excel.Type.EXPORT,sort =46)
    @Digits(integer = 20,fraction = 4,message = "耗电量必须为数字")
    private BigDecimal powerConsumption;
    /**
     * 资源税（万元
     */
    @Excel(name = "资源税（万元",sort =47)
    @Digits(integer = 20,fraction = 4,message = "资源税（万元必须为数字")
    private BigDecimal resourcesTax;
    /**
     * 烟叶税（万元）
     */
    @Excel(name = "烟叶税（万元）",sort =48)
    @Digits(integer = 20,fraction = 4,message = "烟叶税（万元）必须为数字")
    private BigDecimal tobaccoTax;
    /**
     * 环境保护税（万元）
     */
    @Excel(name = "环境保护税（万元）",sort =49)
    @Digits(integer = 20,fraction = 4,message = "环境保护税（万元）必须为数字")
    private BigDecimal environmentalProtectionTax;
    /**
     * 契税(万元）
     */
    @Excel(name = "契税(万元）",sort =50)
    @Digits(integer = 20,fraction = 4,message = "契税(万元）必须为数字")
    private BigDecimal deedTax;
    /**
     * 耕地占用税（万元）
     */
    @Excel(name = "耕地占用税（万元）",sort =51)
    @Digits(integer = 20,fraction = 4,message = "耕地占用税（万元）必须为数字")
    private BigDecimal farmlandOccupationTax;
    /**
     * 车辆购置税(万元）
     */
    @Excel(name = "车辆购置税(万元）",sort =52)
    @Digits(integer = 20,fraction = 4,message = "车辆购置税(万元）必须为数字")
    private BigDecimal vehiclePurchaseTax;
    /**
     * 车船税（万元）
     */
    @Excel(name = "车船税（万元）",sort =53)
    @Digits(integer = 20,fraction = 4,message = "车船税（万元）必须为数字")
    private BigDecimal travelTax;
    /**
     * 土地增值税（万元
     */
    @Excel(name = "土地增值税（万元",sort =54)
    @Digits(integer = 20,fraction = 4,message = "土地增值税（万元必须为数字")
    private BigDecimal landAppreciationTax;
    /**
     * 城镇土地使用税（万元）
     */
    @Excel(name = "城镇土地使用税（万元）",sort =55)
    @Digits(integer = 20,fraction = 4,message = "城镇土地使用税（万元）必须为数字")
    private BigDecimal landTax;
    /**
     * 印花税（万元）
     */
    @Excel(name = "印花税（万元）",sort =56)
    @Digits(integer = 20,fraction = 4,message = "印花税（万元）必须为数字")
    private BigDecimal printingTax;
    /**
     * 房产税（万元
     */
    @Excel(name = "房产税（万元",sort =57)
    @Digits(integer = 20,fraction = 4,message = "房产税（万元必须为数字")
    private BigDecimal realestateTax;
    /**
     * 城市维护建设税（万元）
     */
    @Excel(name = "城市维护建设税（万元）",sort =58)
    @Digits(integer = 20,fraction = 4,message = "城市维护建设税（万元）必须为数字")
    private BigDecimal cityMaintainTax;

    @Excel(name = "耗水量（立方米）",sort =59)
    @Digits(integer = 20,fraction = 4,message = "耗水量（立方米）必须为数字")
    private BigDecimal waterBureau;

    @Excel(name = "企业参评类型",sort =60)
    private String dataType;

}
